Advertisement insert apparatus and advertisement insert method, and storage medium

ABSTRACT

An objective function and a constraint expression are established by a scheme of the invention as conditions for selecting advertisement information to be inserted into a slot in a content. The objective function is used to maximize a total of cost values held by the advertisements selected to be inserted into slots. The constraint expression is used to equalize totaled lengths of the selected advertisements with the length of the slots. The objective function and constraint expression making up the selection conditions are solved as a mathematical programming assignment problem, whereby advertisement information is selected for insertion into predetermined slots in a manner maximizing the benefits of the parties participating in the scheme. In a setup of moving picture streaming distribution, the scheme allows suitable advertisement information to be inserted selectively into slots of contents.

TECHNICAL FIELD

[0001] The present invention relates to an advertisement insertingapparatus, an advertisement inserting method, and a storage medium forproperly inserting advertisement information such as commercials intocontents made up of time series data typically composed of movingpictures. More particularly, the invention relates to an advertisementinserting apparatus, an advertisement inserting method, and a storagemedium for suitably inserting advertisement information into contentssuch as moving pictures that are distributed over a wide-area networktypified by the Internet.

[0002] Even more particularly, this invention relates to anadvertisement inserting apparatus, an advertisement inserting method,and a storage medium for inserting, in a manner selectively personalizedfor each subscriber, advertisement information into contentsillustratively made up of moving pictures that are offered to thesubscribers under a so-called pull-type distribution scheme over theInternet or similar networks. Still more particularly, the inventionrelates to an advertisement inserting apparatus, an advertisementinserting method, and a storage medium for selectively insertingadvertisement information into contents such as moving pictures in amanner corresponding to individual advertisement insertion frames calledslots having a predetermined insertion time (i.e., length) each withinthe contents.

BACKGROUND ART

[0003] Contents like images and music have long been distributed bycontent distribution services over media such as television. Some ofthese content distribution services are chargeable; others are offeredfree of charge to subscribers, with advertisement information such ascommercials inserted into contents so that advertising or sponsoringfees are obtained from commercial sponsors.

[0004] Such advertising or sponsoring fees either make up businessincome for content providers or cover their expenses for producingcontents. The sponsors generally include diverse enterprises andbusiness entities which offer on a chargeable basis household electricalappliances, industrial goods, and other products as well as varieties ofservices. Having advertisement information such as commercials insertedinto contents helps to draw more customers to the products and servicesmarketed by commercial sponsors. The advertising campaign allows thesponsors to recoup benefits that will justify their expenditure on theadvertisements. Although content subscribers enjoy distributed contentsapparently free of charge, they may be regarded in fact as paying forthe privilege by watching the advertisement information. This type ofadvertising business model has already found its way throughout thebroadcasting and publishing industries as well as into diverse contentdistribution services.

[0005] Under these circumstances, there exist certain linkages betweensubscribers, commercial sponsors, and content providers. That is,commercial sponsors get content providers to insert advertisementinformation prepared to attract subscribers' interest into contents.This promotes consumption of the advertised products and services,boosting the revenues of the commercial sponsors. The sponsors pay theadvertising fees, expecting to derive further income and expansion oftheir business from the expenditure. With their earnings thus increased,the content providers expend more in producing better contents. Thisadvertising business model works on the assumption that advertisementinformation inserted into contents is actually effective.

[0006] In other words, attaching ineffective advertisement informationto contents yields few benefits for the subscribers, commercialsponsors, or content providers.

[0007] Recent innovations and advances in data processing andtelecommunication technologies have prompted a significant evolution ofcontent distribution services. Traditionally, the so-called push-typecontent distribution services such as TV and radio broadcasting were thenorm. Lately, however, pull-type content distribution services such asthose utilizing wide-area networks including the Internet are graduallygaining widespread acceptance.

[0008] Illustratively, over a TCP/IP (Transmission ControlProtocol/Internet Protocol) network like the Internet, there existinformation-providing spaces exemplified by the WWW (World Wide Web). Insuch a setup, resource identification information in URL (UniformResource Locator) format is used to search through theinformation-filled space for gaining access to desired informationresources described in HTML (Hyper Text Markup Language) format.Information resources of that type are viewed as home pages by the partycalled clients activating a WWW browser. In that setup, contentproviders superpose their advertisement information as “banner ads” onthe home pages they run to gain advertising revenues.

[0009] Today, as network circuits such as telephone lines (asymmetricdigital subscriber lines known as ADSL) and cable TV networks aregetting faster in data transmission, the business prospects for imagecontent distribution services handling moving pictures such as movies,animation films, and live broadcasts are brightening up.

[0010] One promising development is the so-called streaming technologythat is starting to gain widespread use. The technology involvesallowing a user to playback files even as they are being downloaded, notafter completion of the download. Content distribution by streaming isconsidered to be the key to next-generation Internet usages. At present,well-known content distribution systems implementing the streamingtechnology include “RealSystem G2” and “Windows Media Technologies.”

[0011] These image content distribution services are also receptive tothe advertising business model. That is, advertisement information isinserted into contents so that it may be distributed at a very low costor free of charge to far more subscribers than in the case that thecontents are chargeable. This can constitute a business that benefitsthree parties: subscribers, content providers, and commercial sponsors.As mentioned, however, the business presupposes that advertisementinformation attached to contents is significantly effective.

[0012] Pull-type content-providing businesses such as Internet-basedcontent distribution services can personalize or customize advertisementinformation for each subscriber before inserting the information intocontents for distribution to the subscribers.

[0013] Generally, advertisement information to be distributed isselected on the basis of individual subscribers' profiles, tastes andpreferences so that the subscribers are better satisfied. Typically, acontent distribution system including subscribers, content providers,and commercial sponsors is organized in such a manner that in selectingspecific advertisement information to be used, each of the three partiesinvolved may have their attribute information and their requirementsregarding the other two parties matched and compared for costcalculation. The benefits for the three parties from such selection ofthe advertisements are then studied so that the gain of the system as awhole will be maximized, with no lopsided advantages attributed to anysingle party.

[0014] Locations in which to insert advertisement information such ascommercials within contents are called slots. The locations of suchslots inside contents and the insertion time assigned to each slot aregenerally determined by the content provider in such a manner as tominimize any disturbing effects in the context of the offered content.The reason for that determination is that the content provider hopes toimplement a framework in which to provide the best contents tosubscribers under the circumstances.

[0015] Meanwhile, the lengths of advertisement information such ascommercials vary from one commercial sponsor to another and fromadvertisement to advertisement. Given the variable duration ofadvertisement information, it could happen that the commercials, afterbeing appropriately selected based on the cost calculation taking intoaccount the attributes and requirements of the subscribers, contentproviders and commercial sponsors, fail to fit into the slots incontents.

[0016] If advertisement information were selected based solely on thelengths of available slots, the results would often be unproductive tothe parties involved. That is, the inserted commercial could turn out tobe unnecessary to the subscribers, not as effective as were hoped by thecommercial sponsors, or contrary to the policy of the content providersin the context.

[0017] If advertisement information were selected based only on theoutcome of the cost calculation, two things could happen. For one thing,the commercials to be inserted could overflow or fall short of availableslots. For another thing, it is impossible to adequately consider theeffects of repeatedly inserting the same advertisement information intoone content or the scoring of commercials having different lengths(e.g., a 30-second slot is more likely be assigned two 15-secondcommercials than a single 30-second commercial).

[0018] Illustratively, as recent advances in the streaming technologyaccelerate widespread use of the advertisement distribution servicescustomized to individual subscribers, advertisements are expected todiversify to such an extent that their volumes and types will growexplosively. Still, it is impossible to get the subscribers to watch allcandidate advertisements inserted into distributed contents. What isneeded is a system that calculates dynamically on how to assignadvertisements to slots under existing display constraints (i.e., timeconstraints that apply conventionally when commercials are inserted intoTV broadcasts, or display area constraints applicable when commercialsare shown divided on a single screen).

DISCLOSURE OF INVENTION

[0019] It is therefore an object of the present invention to overcomethe above and other deficiencies of the prior art and to provide anadvertisement inserting apparatus, an advertisement inserting method,and a storage medium for properly inserting advertisement informationinto contents such as moving pictures that are distributed over awide-area network such as the Internet.

[0020] It is another object of the present invention to provide anadvertisement inserting apparatus, an advertisement inserting method,and a storage medium for inserting, in a manner selectively personalizedfor each subscriber, advertisement information into contents such asmoving pictures that are offered to the subscribers under a pull-typedistribution scheme over the Internet or similar networks.

[0021] It is a further object of the present invention to provide anadvertisement inserting apparatus, an advertisement inserting method,and a storage medium for selectively inserting advertisement informationinto contents such as moving pictures in a manner corresponding toindividual advertisement insertion frames called slots having apredetermined insertion time (i.e., length) each within the contents.

[0022] It is an even further object of the present invention to providean advertisement inserting apparatus, an advertisement inserting method,and a storage medium for calculating dynamically on how to assignadvertisement information to slots under existing display constraints(i.e., time constraints in effect conventionally when commercials areinserted into TV broadcasts, or display area constraints that apply whencommercials are shown divided on a single screen).

[0023] In achieving the foregoing and other objects of the presentinvention and according to a first aspect thereof, there is provided anadvertisement inserting apparatus or method for selecting advertisementinformation from a plurality of candidate advertisements having a costvalue each for insertion into a slot in a content, the advertisementinserting apparatus or method including: a selection conditionestablishing means or step for establishing an objective function and aconstraint expression as selection conditions, the objective functionbeing used to maximize a total of cost values held by the advertisementsto be inserted into the slot, the constraint expression for equalizingtotaled lengths of the advertisements to be inserted with a length ofthe slot; and an advertisement information selecting means or step forselecting the advertisement information to be inserted into the slotfrom the plurality of candidate advertisements by solving theestablished selection conditions using linear programming.

[0024] Where advertisement information such as commercials is insertedinto contents distributed illustratively by the moving picture streamingtechnology, the advertisement information to be inserted is selected insuch a manner as to maximize the satisfaction of at least one of thethree parties involved: content providers, subscribers, and commercialsponsors. If the time period of a given slot (advertisement insertionframe) is determined beforehand, however, it may not be possible toassign to the slot in question advertisement information that is deemedeffective.

[0025] That snag is bypassed by the advertisement inserting apparatus ormethod according to the first aspect of the invention, whereby anobjective function and a constraint expression are established asselection conditions, the objective function being used to maximize atotal of cost values held by the advertisements to be inserted into theslot, the constraint expression for equalizing totaled lengths of theadvertisements to be inserted with the length of the slot. Theadvertisement information to be inserted into the slot is then selectedfrom multiple candidate advertisements by solving the establishedselection conditions (objective function and constraint expression) asan assignment problem of mathematical programming, i.e., based on linearprogramming. The advertisement information thus selected is insertedinto the predetermined slot so as to bring about the highest possiblebenefits for the parties concerned.

[0026] The above-mentioned cost value of advertisement informationrefers to a value representative of the degree of satisfaction for anentire system having an information-providing space made up of contentproviders providing contents, of commercial sponsors offeringadvertisement information to be attached to the contents, and ofsubscribers viewing the contents. In that information-providing space,the attribute information specific to the content providers, commercialsponsors, and subscribers is compared with the requirements of each ofthe three parties regarding the selection of advertisements. From thecomparison derives a value representing the degree of satisfaction ofeach of the parties. That value is utilized as a cost value in selectingsuitable advertisement information from candidate advertisements.

[0027] The larger the number of shorter advertisements selected forassignment, the greater the value of the objective function establishedby the selection condition establishing means or step above. That is, ifthe assignment problem were solved simply by integer programming, onlyshort advertisements could be selected, which is not desirable. Givensuch a probability, the advertisement inserting apparatus or methodaccording to the first aspect of the invention may preferably include acost value scoring means or step for scoring the cost value depending onthe length of advertisement information. This preferred variation makesit possible for longer advertisements to be as likely selected asshorter ones.

[0028] Distributed contents such as moving pictures generally include aplurality of slots each. In such cases, the same advertisementinformation may be allowed to appear a plurality of times in a singlecontent to enhance the advertising effect for a specific commercialsponsor. This feature may be implemented by the advertisement insertingapparatus or method according to the first aspect of the inventionpreferably including an expanded redefining means or step for redefiningthe same advertisement information as a different candidateadvertisement as many times as a repeatable insertion count of theadvertisement in question. This makes it possible to insert the sameadvertisement information a plurality of times into a single content.

[0029] However, it can be counterproductive to repeat excessively thesame advertisement information within a single slot for supposedlyenhanced advertising effect because such repetition can bore or annoythe subscribers. This snag can be averted by preferably supplementingthe selection conditions established by the selection conditionestablishing means or step above with a restricting condition forinhibiting the same advertisement information allowed to appearrepeatedly from appearing more than once in the same slot.

[0030] It is also possible to rearrange the expanded redefining means orstep above in such a manner as to reduce the score of the cost value ofany redefined candidate advertisement so that the same advertisementinformation will not be selected preferentially for repeated insertion.

[0031] It might also happen that the number of candidate advertisementsis smaller than the number of available slots in a content. In such acase, the processing could be aborted, given that not all slots arefilled with advertisements and the assignment problem cannot be solvedby integer programming. It is the case where the slots should beassigned as many advertisements as are available, with the unfulfilledslots left empty. That arrangement is desirable from a profitabilitypoint of view, i.e., for the benefit of the distribution business as awhole.

[0032] In view of the eventuality above, the advertisement insertingapparatus or method according to the first aspect of the invention maypreferably include a means or step for judging whether the number ofcandidate advertisements is at least the same as the number of slotsbefore solving the assignment problem, so that if the candidateadvertisement count is judged to fall short of the slot count, then theassignment problem is solved for each of the slots.

[0033] Where the advertisement information assignment problem is solvedby integer programming, the calculation time tends to be longer thelarger the number of candidate advertisements. In particular, if thereis advertisement information allowed to be inserted repeatedly, expandedredefinition of variables takes place. That is, the variables to becalculated for expanded redefinition increases progressively.

[0034] Given that eventuality, the advertisement inserting apparatus ormethod according to the first aspect of the invention may preferablyinclude a means or step for solving the integer programming problemregarding each slot and using the solution to the problem as a basis forgenerating a set of candidate advertisements, so that the advertisementinformation to be inserted into each slot may be selected from the setof candidate advertisements with the repeatable insertion count of eachadvertisement in the set taken into consideration, whereby the variablesinvolved are reduced. Solving the integer programming problem for eachslot in order to create a set of candidate advertisements narrows thecandidates down to the advertisement information which turns out to beeffective and which has already been assigned to the length of eachslot. This arrangement allows for a minimum of deterioration in theaccuracy of optimum assignment as opposed to cases where the assignmentproblem is to be solved for all candidate advertisements.

[0035] According to a second aspect of the invention, there is provideda storage medium which stores physically, in a computer-readable format,computer software for causing a computer system to select advertisementinformation from a plurality of candidate advertisements having a costvalue each for insertion into a slot in a content, the computer softwareincluding the steps of: a selecting conditions establishing step forestablishing an objective function and a constraint expression asselection conditions, the objective function being used to maximize atotal of cost values held by the advertisements to be inserted into theslot, the constraint expression for equalizing totaled lengths of theadvertisements to be inserted with the length of the slot; and anadvertisement selecting step for selecting the advertisement informationto be inserted into the slot from the plurality of candidateadvertisements by solving the established selection conditions usinglinear programming.

[0036] The storage medium according to the second aspect of theinvention is any one of storage media that offer computer software in acomputer-readable format illustratively to a general-purpose computersystem capable of executing diverse program codes. Such storage mediatypically include CDs (compact discs), FDs (flexible discs), MOs(magneto-optical discs), and other portable media that are readilymounted and discounted. As another alternative, it is technicallypossible to transmit computer software to a specific computer systemover transmission media such as networks (which may be wired orwireless).

[0037] The storage medium is arranged so as to define its structurallyor functionally collaborative relations with computer software thatcauses a computer system to implement specific functions. In otherwords, when relevant computer software is installed into the computersystem via the storage medium according to the second aspect of thisinvention, the computer system operates in collaboration with theinstalled software to provide the same effects as those of theadvertisement inserting apparatus and method according to the firstaspect of the invention.

[0038] Other objects, features and advantages of the invention willbecome more apparent upon a reading of the following description andappended drawings.

BRIEF DESCRIPTION OF DRAWINGS

[0039]FIG. 1 is a schematic view showing a configuration of acontent/advertisement providing system 1 according to the invention;

[0040]FIG. 2 is a schematic view depicting a structure of a computersystem that may be used as a server or a client;

[0041]FIG. 3 is a conceptual view of an advertisement selecting server40;

[0042]FIG. 4 is a schematic view illustrating a structure of mountedmodules in the advertisement selecting server 40 according to theinvention;

[0043]FIG. 5 is a schematic view indicating how matching is done by thecontent/advertisement providing system 1 of the invention;

[0044]FIG. 6 is a schematic view sketching a data structure ofsubscriber OPTINOUT data;

[0045]FIG. 7 is a schematic view depicting a data structure ofTargetINOUT data;

[0046]FIG. 8 is a view showing detailed data for use in matching by theadvertisement selecting server 40;

[0047]FIG. 9 is a flowchart of steps carried out by a rule unit 41 ofthe advertisement selecting server 40;

[0048]FIG. 10 is a flowchart of detailed steps for extracting candidateadvertisements based on rules;

[0049]FIG. 11 is a tabular view indicating relations between matchingtypes on the one hand and cost allocations on the other hand;

[0050]FIG. 12 is a schematic view of typical slot locations within adistributed content;

[0051]FIG. 13 is a schematic view showing how candidate advertisementsare optimally inserted into slots;

[0052]FIG. 14 is a schematic view depicting how the same advertisementinformation is typically inserted a number of times into a singlecontent;

[0053]FIG. 15 is a schematic view illustrating how second-time andsubsequently selected candidates have their score reduced in costrecalculations so that the same advertisement information will notappear preferentially;

[0054]FIG. 16 is a schematic view giving results (specific example) ofprocessing performed by an MP unit 42 in phase 2;

[0055]FIG. 17 is a schematic view giving a comprehensive sketch of theresults of processing performed by the MP unit 42 in phase 2 shown inFIG. 16;

[0056]FIG. 18 is a schematic view showing a case where the number ofcandidate advertisements falls short of the number of slots;

[0057]FIG. 19 is a schematic view sketching another case where thenumber of candidate advertisements falls short of the number of slots;

[0058]FIG. 20 is a schematic view indicating how the candidateadvertisement assignment problem is solved for each slot using integerprogramming;

[0059]FIG. 21 is a flowchart of steps for solving the candidateadvertisement assignment problem where the number of candidateadvertisements falls short of the number of slots;

[0060]FIG. 22 is an explanatory view of a procedure (phase 1) forreducing the number of variables to be calculated by integerprogramming;

[0061]FIG. 23 is an explanatory view of another procedure (phase 2) forreducing the number of variables to be calculated by integerprogramming; and

[0062]FIG. 24 is a flowchart of steps for solving the problem ofassigning advertisement information to slots using a two-phase scheme inan attempt to reduce the number of variables to be calculated in integerprogramming.

BEST MODE FOR CARRYING OUT THE INVENTION

[0063] Preferred embodiments of this invention will now be described indetail with reference to the accompanying drawings.

[0064] A. System Configuration

[0065]FIG. 1 schematically shows a configuration of acontent/advertisement providing system 1 embodying the invention. Thesystem 1 distributes illustratively image contents made up of movingpictures to subscribers over a wide-area network such as the Internettogether with personalized advertisement information targeted for thesubscribers.

[0066] As illustrated in FIG. 1, the content/advertisement providingsystem 1 is constituted by a content server 10, an advertisement server20, a subscriber terminal 30, and an advertisement selecting server 40.The content server 10 is run by a content provider offering a contentdistribution service involving the distribution of contents such asimages. The advertisement server 20 is operated by a commercial sponsoroffering accumulated advertisement information to be inserted intocontents for distribution. The subscriber terminal 30 is owned by asubscriber viewing distributed contents. The advertisement selectingserver 40 is run by an advertisement selection business operatoroffering a personalized advertisement selection service involving theselection of advertisement information to be inserted into contents fordistribution.

[0067] In the description that follows, the content provider, commercialsponsor, subscriber, and advertisement selection business operatortaking part in the content/advertisement providing system 1 will also bereferred to as the players where appropriate.

[0068] The server machines 10, 20 and 40 may each be implementedillustratively by starting up a suitable server application program on aworkstation (WS) or a personal computer (PC). The subscriber terminal 30may be implemented illustratively by booting a client applicationprogram such as a Web browser on the personal computer.

[0069] The server and client machines are connected to a TCP/IP networksuch as the Internet through physical connecting means such as theEthernet (registered trademark). The machines are interconnectedsecurely through appropriate authenticating procedures.

[0070] The subscriber terminal 30 is connected to the content server 10via the network. By operating the subscriber terminal 30, the subscribermay designate contents such as moving pictures to be provided by thecontent server 10. Where the content server 10 incorporates streamingtechniques such as RealServer and where the subscriber terminal 30 hasmoving picture playback software such as RealPlayer installed therein,the subscriber is able to watch and listen to the requested content inreal time.

[0071] The content server 10 is also connected to the advertisementserver 30 and advertisement selecting server 40 via the network. In thissetup, the content server 10 can issue an advertisement selectionrequest to the connected servers, i.e., a request for advertisementinformation to be inserted into the content requested by the subscriberfor distribution. The advertisement information selected by and returnedfrom the advertisement selecting server 40 is acquired from theadvertisement server 20 and inserted into the content, whereby theadvertisement in question is exposed on the subscriber terminal 30.

[0072] The content server 10 of this invention also has the function ofdetecting advertisement information being exposed on the subscriberterminal 30. Upon advertisement exposure, the content server 10transmits an advertisement viewing log to the advertisement selectingserver 40. Illustratively, suitable plug-in software may be installedinto the content server 40 so as to implement on the server 40 suchextended functions as the request for selection of advertisements andthe transmission of advertisement exposure logs.

[0073] The advertisement selecting server 40 is connected via thenetwork to various databases such as those of subscriber profiles,advertisement attributes, and content attributes. Upon receipt of anadvertisement selection request from the content server 10, theadvertisement selecting server 40 selects advertisement information tobe exposed along with contents in keeping with the details of therequest and based on what is available from the databases. Whenreceiving an advertisement exposure log from the content server 10,advertisement selecting server 40 stores the received log into adatabase as part of an advertisement viewing history.

[0074] The advertisement selecting server 40 is implemented using aworkstation or a personal computer capable of running a serverapplication “Weblogic Server.” Software for processing advertisementselection requests and storing advertisement exposure logs may bedescribed illustratively in Java.

[0075] The databases for accumulating subscriber information (tastes,preferences, ages, addresses), advertisement attributes (for subscribertargeting), content attributes (information about preferentialadvertisements), etc., may be implemented illustratively using aworkstation (WS) or a personal computer (PC) capable of running Oracle,i.e., a relational database (RDB) system.

[0076] What follows is a description of a computer system that canconstitute a host terminal acting as any of the servers 10, 20 and 40catering to their clients. FIG. 2 schematically illustrates a typicalhardware configuration of this computer system 100.

[0077] A CPU (central processing unit) 111, main controller of thesystem 100, performs various application programs under control of anoperating system (OS). Illustratively, when the CPU 111 executes aserver application for providing contents, a server application forproviding advertisement information, a server application for selectingadvertisement information to be inserted into contents, or a clientapplication for viewing contents, the system 100 functions as the server10, 20, 40, or subscriber terminal 30, respectively.

[0078] As shown in FIG. 1, the CPU 111 is interconnected with othercomponent devices (to be described later) via a bus 117. The devices onthe bus 117 are each given a unique memory address or I/O address. Theseaddresses allow the CPU 111 to access the corresponding devices. The bus117 is typically a PCI (Peripheral Component Interconnect) bus.

[0079] A memory 112 is a storage device that temporarily accommodatesprogram codes being executed or work data being handled by the CPU 111.The memory 112 in FIG. 2 embraces a volatile and a nonvolatile memory.

[0080] A display controller 113 is a dedicated controller for actuallyprocessing graphics-drawing instructions issued by the CPU 111.Illustratively, the controller 113 supports bit-mapped graphics-drawingfunctions compatible with SVGA (Super Video Graphic Array) or XGA(extended Graphic Array) norms. Graphic data processed by the displaycontroller 113 are written temporarily to a frame buffer (not shown)before being output onto a display unit 121. The display unit 121 isillustratively a CRT (cathode ray tube) display or an LCD (liquidcrystal display).

[0081] An input unit interface 114 is designed to interface user inputunits such as a keyboard 122 and a mouse 123 to the system 100. As willbe described later, it is necessary to enter various items of attributeinformation into the content providing server 10 regarding contents,into the advertisement providing server 10 about advertisementinformation, and into the subscriber terminal 30 with respect to thesubscriber, along with requirements (OPTINOUT information) foradvertisement selection. The computer system 100 allows settings ofthese items to be input through the keyboard 122 and mouse 123. Thedetailed settings of the items making up the attribute information aboutcontents, advertisement information and subscriber, as well as therequirements (OPTINOUT information) regarding the selection ofadvertisements, will be discussed later.

[0082] A network interface 115 is designed to interface the system 100to a network such as a LAN (local area network) in accordance withsuitable communication protocols like the Ethernet (registeredtrademark). Generally, the network interface 115 is furnished in theform of a LAN adapter card that is inserted into a PCI bus slot on amotherboard (not shown). Alternatively, the system 100 may be connectedto an external network not through the network interface but via a modem(not shown).

[0083] On the LAN, a plurality of host machines (computers) areconnected in a transparent manner constituting a distributed computingenvironment. Part of the host machines operate as routers connected toexternal networks such as other LANs and the Internet. Over theInternet, software programs and data contents are distributed throughthe routers.

[0084] It is assumed for this embodiment that contents and advertisementinformation to be inserted into the contents are distributed over thenetwork. Illustratively, the content server 10 distributes contents suchas moving pictures to subscriber terminals by streaming technology.

[0085] The attribute information set for contents, for advertisementinformation and for subscribers, along with the requirements (OPTINOUTinformation) regarding the selection of advertisements, may be movedbetween systems over the network. On the computer system working as theadvertisement selecting server 40, the attribute information set forcontents, advertisement information and subscribers together with therequirements (OPTINOUT information) regarding advertisement selection isstored in databases. When a subscriber requests a certain content, theadvertisement information to be inserted into the requested content isselected by matching process involving these databases in a mannermaximizing the benefits for the content/advertisement providing system 1as a whole (as will be discussed later). The advertisement selectingserver 40 can report the result of the advertisement informationselection to other host terminals such as the content server 10 andadvertisement server 30 over the network.

[0086] An external unit interface 116 is designed to interface externalunits such as a hard disc drive (HDD) 124 and a media drive 125 to thesystem 100. The external unit interface 116 complies illustratively withsuch interface standards as IDE (Integrated Drive Electronics) and SCSI(Small Computer System Interface).

[0087] The HDD 124 is a known external storage unit that has magneticdiscs mounted in fixed fashion as storage media. The HDD 124 is superiorto other external storage devices in terms of storage capacity and datatransfer speed. When a software program is placed onto the HDD 126 in anexecutable manner, the program is said to be “installed” into thesystem. Usually, the HDD 124 accommodates in nonvolatile fashion theprogram codes of the operating system to be executed by the CPU 111, aswell as application programs and device drivers.

[0088] For example, the content server application program,advertisement server application program, advertisement selection serverapplication program, and subscriber terminal client application programof this embodiment are installed on the HDD 124. The HDD 124 may alsoaccumulate the attribute information established with respect tocontents, advertisement information, and subscribers, along with therequirements (OPTINOUT information) regarding the selection ofadvertisements. The advertisement selecting server 40 may record ontothe HDD 124 an advertisement viewing history made up of advertisementexposure logs detailing the advertisements having been exposed to thesubscribers.

[0089] The media drive 125 is a device which, when loaded with portablemedia including the CD (compact disc), MO (magneto-optical disc) and DVD(digital versatile disc), gains access to their data recorded surfaces.The portable media are used primarily for the backup of softwareprograms and data files in a computer-readable format, as well as formoving these resources between systems (e.g., for marketing anddistribution).

[0090] Illustratively, the content server application program,advertisement server application program, advertisement selection serverapplication program, and subscriber terminal client application programof this embodiment may be distributed using such portable media.Furthermore, the portable media may be used to distribute the attributeinformation established with regard to contents, advertisementinformation, and subscribers, along with the requirements (OPTINOUTinformation) relative to the selection of advertisements. Obviously,moving picture contents carrying personalized advertisement informationtargeted for individual subscribers may also be placed on this type ofstorage media for movement between systems, instead of being distributedby streaming from the content server 10.

[0091] The computer system 100 in FIG. 2 is typically a PC/AT (PersonalComputer/Advanced Technology) compatible computer or its successor. Acomputer system having a different architecture may also be utilized asa host terminal of this embodiment.

[0092] B. Personalized Content Distribution Service

[0093] The content/advertisement providing system 1 shown in FIG. 1provides advertisement-carrying contents to the subscriber terminal 30in the following steps:

[0094] (1) The subscriber terminal 30 makes a content-viewing request tothe content server 10.

[0095] (2) The content server 10 requests the advertisement selectingserver 40 to select advertisement information to be inserted into therequested content.

[0096] (3) The advertisement selecting server 40 selects advertisementinformation deemed optimal through the process of matching thesubscriber's profile with advertisement and content attributes (to bedescribed later), and notifies the requesting content server 10 of theselected information.

[0097] (4) The content server 10 acquires the optimal advertisementinformation from the advertisement server 20.

[0098] (5) The content server 10 inserts the acquired optimaladvertisement information into the content designated by the subscriberterminal 30, and distributes the content to the subscriber terminal 30in SMIL (Synchronized Multimedia Integrated language) format.

[0099] (6) The designated moving picture content is playbacked in realtime on the subscriber terminal 30.

[0100] The SMIL (Synchronized Multimedia Integrated language), workedout and established by W3C (WWW Consortium), is an integratingtechnology for displaying independent multimedia objects in asynchronized manner. Data written in SMIL format can describe thetemporal behavior in audiovisual multimedia presentations andpresentation layouts on the screen.

[0101] When the subscriber selects the content, the advertisementselecting server 40 coordinates the interests of the subscriber, contentprovider, commercial sponsor, and advertisement selection businessoperator before selecting a suitable advertisement from the group ofadvertisement information stored in the advertisement server 20.

[0102]FIGS. 3 and 4 give conceptual views of the advertisement selectingserver 40. This server is constituted by a rule unit 41 and an MP(mathematical programming) unit 42.

[0103] The rule unit 41 verifies restrictions on the matching betweenthe attributes of the players involved and their advertisement selectionrequirements on the other hand (i.e., extraction of candidateadvertisements) The unit 41 also performs cost allocation of candidateadvertisements. The MP unit 42 narrows down candidate advertisementsthrough a linear programming problem, and calculates assignment ofcandidate advertisements to a slot through an integer programmingproblem.

[0104] With this embodiment, the advertisement selecting server 40performs comparisons (also called matching hereunder), between theplayers, of their attribute information and their guidelines orrequirements (called OPTINOUT information) regarding the selection ofadvertisement information. The server 40 selects advertisements based onthe result of the matching.

[0105]FIG. 4 is a schematic view illustrating a structure of mountedmodules in the advertisement selecting server 40 according to theinvention. As shown FIG. 4, the rule unit 41 is constituted by modulescalled AdSelectRules.java, AdSelect.ilr, and AdSelectMP.java.

[0106] The AdSelectRules.java module receives an advertisement selectionrequest from a Servelet module outside and gives a response to therequest. The AdSelectRules.java module also loads objects needed formatching into a work area of memory, and starts up a rule engine.

[0107] The AdSelect.ilr module is made up of a plurality of rules. Theymake up a rule set which selects candidate advertisements by taking intoaccount matching-based restrictions and inhibiting conditions and whichperforms cost allocation of the candidate advertisements.

[0108] The AdSelectMP.java module generates information (such ascustomized cost allocation and advertisement lengths) to be handed overto the MP unit 42. The AdSelectMP.java module also starts up processingof the MP unit 42 and acquires the result of that processing.

[0109] The MP unit 42 is constituted by modules calledJniPadMatching.java and JniPadMatching.cpp.

[0110] The JniPadMatching.java module acts as a JNI Wrapper that invokesa C++native class (JniPadMatching.cpp) for carrying out processing basedon MP (mathematical programming).

[0111] The JniPadMatching.cpp module performs actual processes throughthe use of mathematical programming.

[0112] With this embodiment of the invention, the players involved haveattribute information specific to each player, or selection guidelines(OPTINOUT information) describing the guidelines or requirementsallowing each player to select the other players; or the players haveboth the attribute information and the selection guidelines each. Someplayers may have the OPTINOUT information that is the same as their ownattribute information.

[0113] Attribute information and OPTINOUT information are made up of aplurality of items. In the advertisement selecting server 40, the ruleunit 41 matches the corresponding items between the attributeinformation about one player and the OPTINOUT data about other playersregarding the selection of advertisements.

[0114] The attribute information constitutes data that represent theattributes of contents, advertisements, and subscribers. The informationis constituted by a plurality of items. The degree of matching betweenthe items is graded in numbers ranging from 0 to 1.0. In particular,attribute data items that have only two alternatives each (e.g., male orfemale) are expressed by a number 1 for matching and by 0 formismatching.

[0115] The OPTINOUT data denote guidelines or requirements regarding theselection of advertisements, and are made up of a plurality of itemsconstituting master data, to be described later. Each of the items isgraded in numbers with respect to one of four types of attributes:restricting, preferring, inhibiting, or grading, as described below. Inthe case that OPTINOUT data are expressed in terms of numbers, each ofthe items making up the data are graded in numbers ranging from −1.0 to1.0.

[0116] Restricting attribute type: if the condition is met, theadvertisement is selected exclusively.

[0117] Preferring attribute type: if the condition is met, theadvertisement is selected not exclusively but preferentially (i.e.,selected at least once).

[0118] Inhibiting attribute type: if the condition is met, theadvertisement is not selected.

[0119] Grading attribute type: the degree of preference for thecondition is graded in numbers.

[0120] The rule unit 41 selects advertisement information based on theresult of matching between attribute information and OPTINOUT data. Thecontent/advertisement providing system 1 of this embodiment carries outthe following four major types of matching (see FIG. 5):

[0121] Matching 1 (M1): compares advertisement attributes with contentOPTINOUT data.

[0122] Matching 2 (M2): compares content attributes with advertisementOPTINOUT data.

[0123] Matching 3 (M3): compares subscriber attributes and subscriberOPTINOUT data, with advertisement OPTINOUT data.

[0124] Matching 4 (M4): compares advertisement attributes withsubscriber OPTINOUT data.

[0125] As shown in FIG. 5, part of matching 3 involves comparingadvertisement OPTINOUT data with subscriber OPTINOUT data. In fact, theactual process considers the subscriber OPTINOUT data to be part of thesubscriber attributes.

[0126] The four types of matching yield cost allocation for each type.The allocated cost components are scored to reflect the advertisementselection business operator's policy. More specifically, a scoringfactor is allotted to each type of matching when the different types ofmatching are carried out (using the formula below), whereby a definitivecost allocation is generated for a candidate advertisement:

Cost=a×M1+b×M2+c×M3+d×M4

[0127] (where, a+b+c+d=1)

[0128] C. Data for Use in Selecting Advertisements

[0129] What follows is a detailed description of data used for matchingbetween the players. Because the data for matching by the rule unit 41and the data entered by each player through a host terminal differslightly in format, the data to be entered by the players will bediscussed first.

[0130] Subscriber Attribute Data

[0131] The attribute data about each subscriber are composed ofsubscriber data including: sex, date of birth, country of residence,area of residence, ZIP code for place of residence, ID for country ofemployment, ID for area of employment, ZIP code for area of employment,mother tongue, knowledge of foreign languages, job ID, annual income ID,marital status, residence ID, and family structure. The subscriberattribute data are to be matched with TargetINOUT data, i.e.,advertisement OPTINOUT information.

[0132] Subscriber OPTINOUT Data

[0133] The subscriber OPTINOUT data are constituted by the itemsfurnished as master data (M_OPT). The requirement for each of the itemsregarding the subscriber in question is described either as aninhibiting type or as a grading type. If the description is of gradingtype, the item in question is graded in numbers ranging from −1.0 to 1.0according to the matching degree of the subscriber. The subscriberOPTINOUT data are to be matched with TargetINOUT data (i.e.,advertisement OPTINOUT data) and product category data.

[0134] Each subscriber is allowed to have a plurality of profiles bypreparing a plurality of sets of subscriber data for different uses orsituations, such as for home use and for use at work. With regard toeach profile, the subscriber may input each of the items constitutingthe subscriber OPTINOUT data. That means the subscriber OPTINOUT datahave a data structure such as one shown in FIG. 6.

[0135] The subscriber attribute information and subscriber OPTINOUTinformation are input by each subscriber subscribing to thecontent/advertisement providing system 1. The data input is done by allsubscribers through their own subscriber terminals 30.

[0136] Advertisement Attribute Information

[0137] The attribute information about each advertisement is made up ofadvertisement meta data, commercial sponsor category data, and productcategory data.

[0138] The advertisement meta data are constituted by an advertisementID for uniquely identifying each advertisement, and the advertisementmeta data are to be matched with advertisement INOUT data, i.e., contentOPTINOUT information.

[0139] The commercial sponsor category data describe the IDs of thecommercial sponsors involved with the advertisement information inquestion. There exist what may be called joint advertisementsrepresenting advertisement information from a plurality of commercialsponsors. The advertisements are each graded in numbers ranging from 0to 1.0 reflecting the degree of participation by each of the sponsorsinvolved. The commercial sponsor category data are to be matched withcommercial sponsor OPTINOUT data, i.e., content OPTINOUT information.

[0140] The product category data are made up of the items furnished asthe above-mentioned master data (M_OPT). Attribute information abouteach product category regarding the advertisement information inquestion is graded in numbers. As such, the product category data are tobe matched with product INOUT data, i.e., content OPTINOUT information.

[0141] Advertisement OPTINOUT Information

[0142] The OPTINOUT information about each advertisement is composed ofcontent meta INOUT data, content category INOUT data, and TargetINOUTdata.

[0143] The content meta INOUT data designate the requirements for theadvertisement information applicable to each of the contents supplied bythe content provider. Specifically, the data describe the requirementsin a restricting, inhibiting, or grading manner with regard to a contentID unique to each content. If the description is of grading type, therequirements are each graded in numbers ranging from −1.0 to 1.0. Thecontent meta INOUT data are to be matched with the advertisement metadata (advertisement IDs).

[0144] The content category INOUT data designate the requirements (i.e.,OPTINOUT) for the content categories about the advertisement informationin question. The items furnished as the master data (M_CONTENT_CATEGORY)have their requirements described in a restricting, inhibiting, orgrading manner. If the description is of grading type, each item isgraded in numbers ranging from −1.0 to 1.0. The content category INOUTdata are to be matched with the commercial sponsor category data.

[0145] The TargetINOUT data designate the requirements (i.e., OPTINOUT)for the subscriber viewing the advertisement information in question.The items provided as the master data (M_TARGET) have their requirementsdescribed in a restricting, inhibiting, or grading manner. TheTargetINOUT data are to be matched with the subscriber data (subscriberattribute information) and subscriber OPTINOUT data.

[0146] With this embodiment of the invention, each piece ofadvertisement information can be targeted for a plurality ofsubscribers. Each advertisement target may have TargetINOUT data whoseitems are allowed to be input. The advertisement OPTINOUT data are thusgiven a data structure such as one shown in FIG. 7.

[0147] Because the content/advertisement providing system 1 of thisembodiment allows a single piece of advertisement information to beviewed by a plurality of subscribers simultaneously, the advertisementselecting server 40 performs matching processes on asubscriber-by-subscriber basis. The MP unit 42 (to be described later)is designed to skip advertisement targets applicable to the sameadvertisement information. That is, the AND relation exists betweenitems of the OPTINOUT information established within the sameadvertisement target, whereas the OR relation is in effect between itemsof the OPTINOUT information set for different advertisement targets.

[0148] The advertisement attribute information and OPTINOUT informationmay be input in units of advertisements illustratively through theadvertisement server 20 or 40, or through terminal equipment connectedto such servers, by the commercial sponsor distributing advertisementinformation by use of the content/advertisement providing system 1.

[0149] Content Attribute Information

[0150] The content attribute information is composed of content metadata and content category data.

[0151] The content meta data constitute a content ID for uniquelyidentifying each content, and the content meta data are to be matchedwith the content meta OPTINOUT data, i.e., advertisement OPTINOUTinformation.

[0152] The content category data designate the category of the contentin question. Specifically, the data describe an attribute value for eachof the items making up the above-mentioned master data(M_CONTENT_CATEGORY), the value being graded in numbers ranging from 0to 1.0. As such, the content category data are to be matched with thecontent category OPTINOUT data (advertisement OPTINOUT information).

[0153] Content OPTINOUT Information

[0154] The content OPTINOUT information is made up of advertisementINOUT data (content→advertisement), commercial sponsor INOUT data(content→advertisement) and product INOUT data (content→advertisement).

[0155] The advertisement INOUT data designate the requirements (OPTINOUTinformation) for each piece of advertisement information regarding thecontent in question. Specifically, the data describe, in a restricting,preferring, inhibiting, or grading manner, each of the itemsconstituting the advertisement information provided by the advertisementserver 20, i.e., advertisement meta data (advertisement IDs). If thedescription is of grading type, each item is graded in numbers rangingfrom −1.0 to 1.0. The advertisement INOUT data are to be matched withthe advertisement meta data (advertisement attribute information).

[0156] The advertisement INOUT data designate the requirements(OPTINOUT) for each of the commercial sponsor categories applicable tothe content in question. Specifically, the data describe, in arestricting, preferring, inhibiting, or grading manner, each of theitems furnished as the master data (M_CUSTOMER). The advertisement INOUTdata are to be matched with the commercial sponsor category data(advertisement OPTINOUT information).

[0157] The product INOUT data designate the requirements (OPTINOUT) foreach of the product categories applicable to the content in question.Specifically, the data describe, in a restricting, preferring,inhibiting, or grading manner, the requirements for each of the itemsfurnished as the master data (M_OPT). If the description is of gradingtype, each item is graded in numbers ranging from −1.0 to 1.0. Theproduct INOUT data are to be matched with the product category data(advertisement attribute information).

[0158] The content attribute information and OPTINOUT information may beinput in units of contents illustratively through the content server 10or through terminal equipment connected to the server 10 by the contentprovider distributing contents by use of the content/advertisementproviding system 1.

[0159] As described above, the advertisement selecting server 40 run bythe advertisement selection business operator selects advertisementinformation to be inserted into the content requested by a givensubscriber, the selection being made based on the results of the fourtypes of matching (matching 1 through matching 4; see FIG. 5) betweenthe attribute information held by the subscriber, advertisementinformation, and content on the one hand, and the OPTINOUT informationon the other hand.

[0160] In other words, the advertisement selecting server 40 selects theadvertisement information to be inserted into the content by judgingcomprehensively the interests of the subscriber, commercial sponsor, andcontent provider through the four types of matching. The results fromthese four types of matching are each scored by factors “a,” “b,” “c”and “d” (a+b+c+d=1) so that the advertisement selection businessoperator's policy may be reflected in the selection of advertisementinformation.

[0161] In each type of matching, the scored data may be used betweendifferent items. It is also possible to set penalty values for caseswhere advertisements overlap.

[0162] The advertisement selecting server 40 performs matching processesusing the attribute information input for each subscriber, eachadvertisement, and each content as well as the OPTINOUT Information.There are two cases of matching with regard to the use of information:in one case, the input attribute information and OPTINOUT informationare used unmodified; in the other case, the input attribute informationand OPTINOUT information are further processed by the advertisementselecting server 40 before being put to use. FIG. 8 shows detailed dataused by the advertisement selecting server 40 for matching purposes.

[0163] Where the subscriber attribute information is concerned, theattribute data and OPTINOUT data representing the subscriber's taste aregenerated from the same subscriber's OPTINOUT data at the time ofmatching. Where the subscriber OPTINOUT information is to be handled asthe subscriber attribute data, the OPTINOUT data are divided into thepositive and the negative sides so that the positive-side data andnegative-side data are treated as attribute values. In such cases, atleast either the positive or the negative side takes the value of zero.

[0164] The subscriber OPTINOUT information may be used as it is input atthe time of matching. The advertisement OPTINOUT information may also beused as it is input upon matching.

[0165] Where the advertisement OPTINOUT information is concerned, thepositive-side and negative-side TargetINOUT data are generated out ofthe TargetINOUT data applicable to the OPT category item at the time ofmatching, whereby two kinds of OPTINOUT data are reconstituted. Thisallows the commercial sponsor to perform subscriber targetingbidirectionally: either according to the subscriber's degree ofpreference for a specific item, or depending on the subscriber's degreeof distaste for that item. Of the input TargetINOUT data, thosecorresponding to the subscriber attribute items are used unmodified atthe time of matching.

[0166] The content-related attribute information and OPTINOUTinformation are used as they are input at the time of matching.

[0167] D. Extraction of Candidate Advertisements by the Rule Unit

[0168] Described below with reference to the flowchart of FIG. 9 are thesteps carried out by the rule unit 41 of the advertisement selectingserver 40 to extract candidates of advertisement information (candidateadvertisements) to be inserted into the content requested by asubscriber.

[0169] In step S1, AdSelectRules.java is booted to initialize thecontext.

[0170] In step S2, data objects needed for the subscriber, advertisementinformation, and content are loaded. The data objects here refer toattribute information and OPTINOUT information input or processed withregard to the subscriber, advertisement information, and content.

[0171] In step S3, AdSelectRules.java and AdSelect.ilr are carried outto extract candidate advertisements according to rules.

[0172]FIG. 10 is a flowchart of detailed steps performed by the ruleunit 41 to extract candidate advertisements based on predeterminedrules. In step S11, initialization is effected preparatory to extractingcandidate advertisements. Specifically, PadStatus objects are generatedso as to prepare AdList (a list of candidate advertisements) andAdTargetList (a list of candidate advertisement targets).

[0173] If there exist any rules over the contract of advertisementexposure, they need to be applied here. For example, if a specific dayof the week or a specific time zone of the day is designated for theadvertisement information, only those advertisements meeting therequirement are left as candidates in AdList.

[0174] In step S12, the restricting process of matching 1 is performed.More specifically, if there exist restricted advertisements applicableto matching 1, the applicable AdTargets alone are added to AdTargetListin step S13. If there are no such advertisements, all AdTargets areadded to AdTargetList in step S14.

[0175] In any type of matching, it should be noted, any object to becompared is effective only if its attribute has a value larger thanzero.

[0176] In step S15, the restricting process of matching 2 is performed.If there exist restricted advertisements applicable to matching 2 andthe restricting condition does not comply with the content attribute,the applicable AdTargets are deleted from AdTargetList in step S16.

[0177] In step S17, the restricting process of matching 3 is carriedout. If there exist restricted advertisements applicable to matching 3and the restricting condition does not comply with the subscriberattribute, the applicable AdTargets are deleted from AdTargetList instep S18.

[0178] In step S19, the inhibiting process of matching 1 is performed.If there exist inhibited advertisements applicable to matching 1, theapplicable AdTargets are deleted from AdTargetList in step S20.

[0179] In step S21, the inhibiting process of matching 2 is performed.If there exist inhibited advertisements applicable to matching 2, theapplicable AdTargets are deleted from AdTargetList in step S22.

[0180] In step S23, the inhibiting process of matching 3 is carried out.If there exist inhibited advertisements applicable to matching 3, theapplicable AdTargets are deleted from AdTargetList in step S24.

[0181] In step S25, the inhibiting process of matching 4 is carried out.If there exist inhibited advertisements applicable to matching 4, theapplicable AdTargets are deleted from AdTargetList in step S26.

[0182] Following the restricting and inhibiting processes in thedifferent types of matching, AdTargetList is completed in step S27.

[0183] With this embodiment, the items set as restricting type areverified before the items set as inhibiting type. The staggeringarrangement reduces the number of processes to be carried out to extractcandidate advertisements.

[0184] In step S28, cost allocation is prepared by calculating points ofAdTragets by grading in numbers each of those AdTargets in AdTargetListwhich comply with the conditions involved. The cost allocation thusprepared is transferred to the MP unit 42 located downstream.

[0185] If the OPTINOUT information in which the grades and restrictingconditions are established for all types of matching is judged to matchthe corresponding attributes during cost allocation preparation, thenthe cost of the applicable AdTarget for each type of matching iscalculated, and the cost thus acquired is added to the cost allocation.

[0186] In this context, the score of the i-th AdTarget is expressed asfollows:

[0187] k=number of items

[0188] r=number of items such that (C_(k) ^((oxy))×C_(k) ^((axy))) willnot become zero (calculations are made with r=1 for BL2.)

[0189] if r≠0${c\quad o\quad s\quad t\quad M\quad x\quad y^{(i)}} = \frac{\sum\limits_{k}\left( {C_{k}^{({oxy})} \times C_{k}^{({axy})}} \right)}{r}$

[0190] if r=0

costMxy^((i))=0

[0191] For this embodiment of the invention, the grade of any itemfurnished with a restricting condition is taken as 1.0.

[0192]FIG. 11 shows typical relations between the different types ofmatching on the one hand and the cost allocation on the other hand.

[0193] Based on the obtained cost for sub-matching types, the cost ofeach type of matching is given by the following expression:${c\quad o\quad s\quad {tMx}^{(i)}} = \frac{\underset{y = 1}{\sum\limits^{m}}{costMxy}^{(i)}}{m}$

[0194] (where, m=sub-matching count for Mx)

[0195] The policy of the advertisement selection business operator isreflected in the acquired cost for each type of matching. Whereparameters for changing the score for matching are considered, the scoreof the i-th AdTarget is given by the following expression:${cost}^{(i)} = {\sum\limits_{x = 1}^{4}\quad \left( {{C^{({p1})}\lbrack x\rbrack} \times \cos \quad t\quad {Mx}^{(i)}} \right)}$

[0196] From this, the cost allocation to be handed over to the MP unit42 is given as:

cost=[cost⁽¹⁾, cost⁽²⁾, . . . , cost^((n))](n=number of loadedadvertisements)

[0197] E. Assignment of Candidate Advertisements by the MP Unit

[0198] The content/advertisement providing system 1 of this embodimentallows the subscribers to request the content server 10 through theirsubscriber terminals 30 to provide streaming distribution of contentssuch as moving pictures. The content selected by each subscriber has aplurality of slots (generically represented by the j-th slot hereunder)in which advertisement information such as commercials may be inserted.

[0199] The above-mentioned rule unit 41 hands multiple candidateadvertisements to be inserted in each slot over to the MP unit 42 incost allocation format. Based on the advertisement information coststransferred from the rule unit 41, the MP unit 42 fills the slots in thecontents with appropriate advertisement information. Illustratively, asshown in FIG. 12, a short film made of moving pictures may have a15-second slot 1, a 45-second slot 2, and a 30-second slot 3 in which toinsert advertisements. FIG. 13 depicts how advertisements are assignedto these slots. Specifically, a 15-second advertisement (CM 58) isassigned to the slot 1; a 15-second advertisement (CM 2) and a 30-secondadvertisement (CM 19) are assigned to the slot 2; and a 30-secondadvertisement (CM 37) is assigned to the slot 3.

[0200] If the processing above is modeled using 0-1 integer programming,the conditions that apply when the i-th advertisement information isinserted into the j-th slot are constituted by the objective function(1) and constraint expression (2) given below:

[0201] Objective Function $\begin{matrix}\left. {\sum\limits_{i \in {CM}}{\sum\limits_{j \in {Slot}}\left( {c\quad o\quad s\quad t_{i} \times x_{ij}} \right)}}\rightarrow{maximum} \right. & (1)\end{matrix}$

[0202] Constraint Expression $\begin{matrix}{{\forall{j \in {{slot}{\sum\limits_{i \in {CM}}\left( {{CMTime}_{i} \times x_{ij}} \right)}}}} = {s\quad l\quad o\quad t\quad T\quad i\quad m\quad e\quad j}} & (2)\end{matrix}$

[0203] where,

[0204] slotTime_(j)=length (time period) of each slot

[0205] i=0, 1, 2, . . . index of advertisement information

[0206] j=0, 1, 2, . . . index number of slot in content

[0207] x_(ij)∈0 or 1: 1 for adopting i-th advertisement in j-th slot; 0for not adopting it

[0208] CMtime_(i)=length (time period) of i-th advertisement

[0209] cost_(i)=score of i-th advertisement (the larger the value, thehigher the priority)

[0210] The MP unit 42 solves a two-dimensional assignment probleminvolving the assignment of a plurality of candidate advertisements to aplurality of slots at an optimum degree of matching in consideration ofthe constraints to be discussed below. With this embodiment of theinvention, the assignment problem is solved using 0-1 integerprogramming.

[0211] If the 0-1 integer programming problem were solved with nomodifications, it should be noted, shorter advertisements would morelikely be selected than longer ones for assignment. That is because thevalue of the objective function (1) above becomes greater the larger thenumber of shorter commercials selected. This inconvenience is bypassedby the embodiment using the following formula for modifying the score ofeach advertisement depending on its temporal length: $\begin{matrix}{{cost}_{i} = {{cost}_{i} \times \frac{CMTimej}{{minimum}\quad {CM}\quad {time}\quad {unit}}}} & (3)\end{matrix}$

[0212] where, the minimum commercial time unit is illustratively 15seconds.

[0213] Alternatively, the cost calculation shown below is carried out tomake sure that the longer the advertisements, the more advantageoustheir cost values. For example, it is considered more advantageous tofill a 60-second slot with one 60-second advertisement than with two30-second advertisements. $\begin{matrix}{{{cost}_{i} = {{cost}_{i} \times \frac{CMTimej}{{minimum}\quad {CM}\quad {time}\quad {unit}} \times \left( {1 + {\frac{CMTimej}{{minimum}\quad {CM}\quad {time}\quad {unit}}ɛ}} \right)}},\quad} & (3)\end{matrix}$

[0214] where, symbol ε stands for a value equal to or greater than zero(in practice, a very small value such as 0.0001 is used), and theminimum commercial time unit is illustratively 15 seconds.

[0215] Generally, there are demands from specific commercial sponsorsfor inserting the same advertisement information repeatedly into thesame content. This embodiment of the invention meets such demands byperforming expanded redefinition of an insertion-enabling variablex_(ij) as many times as the i-th advertisement information is desired tobe inserted into the j-th slot. That is, the assignment problem issolved by defining the same advertisement information as a differentadvertisement every time it is repeated.

[0216]FIG. 14 shows a case in which the variable x_(ij) is subject toexpanded redefinition as many times as a desired repeatable insertioncount so that the same advertisement information is inserted repeatedlyinto the same content. In this example, advertisement information “i”has the variable x_(ij) initially defined for a first slot, and has thevariable redefined as x_(i+nj), x_(i+2nj), x_(i+3nj), and x_(i+4nj) fora second, a third, a fourth, and a fifth slot respectively, so that thesame advertisement information “i” is allowed to be inserted into thesame content up to five times. Redefining the insertion-enablingvariable for each new slot to be filled thus allows advertisementinformation to appear repeatedly in a single content.

[0217] The repeatable insertion count may alternatively be set for eachadvertisement. In this case, only the variables for permitting repeatedinsertion of the advertisement are enabled, and all other variables areexcluded from the calculation. This makes it possible to reduce thenumber of variables to be computed and minimize any extension of thecalculation time. Illustratively, suppose that a first candidateadvertisement is desired to be inserted up to three times. In that case,the variables x_(lj), x_(l+nj), and x_(l+2nj) are included in thecalculation while the variables x_(l+3nj) and x_(l+4nj) are fixed tozero and excluded from the calculation.

[0218] Where the same advertisement information is inserted repeatedlyinto the same content, repetition in the same slot can becounterproductive (because it may bore or annoy subscribers whilebringing the benefit only to specific commercial sponsors at the cost ofother sponsors). This snag is avoided by this embodiment adding thefollowing restricting condition: $\begin{matrix}{\forall{j \in {{{Slot}{\sum\limits_{i}x_{ij}}} \leqq 1}}} & (4)\end{matrix}$

[0219] where repeatable insertion is allowed with ∀i∈CM.

[0220] If advertisement information from a specific sponsor is alwaysgiven priority over other sponsors' advertisements, the neglectedsponsors may resent the apparent favoritism and leave thecontent/advertisement providing system 1 outright. This can cripple thebusiness model (i.e., the system as a whole). That eventuality isaverted by cost recalculations. Specifically, even where the sameadvertisement information is allowed to be inserted into the samecontent a number of times, second-time and subsequently selectedcandidates have their score reduced through cost recalculations so thatthe same advertisement information will not appear in an obviouslypreferred manner. FIG. 15 shows how such cost recalculations areperformed to readjust the score of repeated candidate advertisements.

[0221] How the MP unit 42 assigns advertisements to slots in content isdescribed below in more specific terms.

[0222] (1) Advertisement information is handled in units of AdTargets bythe system components leading up to the rule unit 41. From the MP unit42 on, the information is reconstituted into individual advertisementsfor processing. If an advertisement has a plurality of AdTargets, thehighest of costs for the targets involved is regarded as the cost forthe advertisement in question (alternatively, the costs may beaveraged).

[0223] (2) Each slot is assigned an advertisement that falls within adesignated period of time. If the advertisement lasts less than thedesignated time period, the slot may be retained for a predeterminedtime period (e.g., up to 15 seconds).

[0224] (3) The same advertisement may be assigned a plurality of timesto different slots. It should be noted, however, that any advertisementmay not appear more than a predetermined number of times in the samecontent.

[0225] (4) A two-phase selection scheme is adopted under processing timeconstraints. In phase 1, a sufficient number of advertisements areselected with no overlap from all candidates under the slot timeconstraint. The candidate advertisements are selected in units ofAdTargets, as described in paragraph (1) above. Arrangements are made sothat a plurality of AdTargets belonging to the same CM will not overlap.

[0226] In phase 2, a set of candidates selected in phase 1 is solved asa two-dimensional assignment problem for optimization. What needs to beconsidered at this point is the number of times each advertisement isallowed to be inserted in overlapping fashion in the same content handedover by use of a reach argument.

[0227] More detailed processes of the phases involved are discussedbelow.

[0228] Phase 1

[0229] In phase 1, a sufficient number of advertisements are selectedunder the slot time constraint, with no overlap within the same slot,from all candidate advertisements (discussed above) handed over from therule unit 41. The conditions applicable to phase 1 are: informationabout the slot into which to insert the advertisement in the designatedcontent, an advertisement variable array x_(i), and a relatedinformation array.

[0230] If the length of a j-th slot in the content is represented byslotTime_(j) (as mentioned above) and if there are three slots in agiven content, the slots having lengths of 45 seconds, 30 seconds, and60 seconds respectively, the lengths of these slots may be expressed as:slotTime[0]=45, slotTime[1]=30, slotTime[2]=60.

[0231] The advertisement variable array x_(i) and related informationarray are determined as described above.

[0232] For each slot, an integer programming problem made up of theabove-mentioned objective function (1) and constraint function (2) issolved. The advertisement variable array xi is fixed to zero for thisembodiment so that any advertisement selected for a given slot will notbe selected for the next slot.

[0233] The actual flow of processes for solving the integer programmingproblem above is shown below in the form of a pseudo-code. For (j=0;j<No. of slots; j++) { // Set the following constraints in the modelenvironment of CPLEX: $\begin{matrix}\left. {\sum\limits_{i}\quad {{cost}_{i} \times x_{i}}}\rightarrow\max \right. \\\left. {\sum\limits_{i}\quad {{CMTime}_{i} \times x_{i}}}\rightarrow{slotTime}_{j} \right.\end{matrix}\quad$

// Solve the CPLEX problem. cplex.solve( ) ; // Set CheckFlag to 1 forthe selected advertisement (CM). for(i=0;i< No. of candidateadvertisements i++) if(x[i] !=0)CheckFlag[i]=1; // In order to avoidassigning the once-selected CM xi to the next slot; // Exclude this fromthe calculation (1). for(i=0;i< No. of candidate advertisements i++) {if(checkFlag[i]==1) X[i] .setUb(0.0); } }

[0234] 1) Fixing the upper limit of x_(i) to 0 causes the once-selectedadvertisement to be excluded from the calculation for the next slot. Inpractice, a method x[i].setUb(0.0) is used for setting values, wherex[i] denotes a special array type called IloNumVarArray used as avariable in the Cplex calculation.

[0235] Solving the integer programming problem gives answers in a mannerassigning candidate advertisements to different slots as shown below.The set of candidate advertisements obtained in phase 1 is forwarded tophase 2 where more detailed assignment problems will be solved.

[0236] Answer to slot 0

[0237] x_(i)=0, 1, 1, 0 . . . 0, . . . 0

[0238] Answer to slot 1

[0239] x_(i)=1, 0, 0, 0 . . . 1, . . . 0

[0240] Answer to slot 2

[0241] x_(i)=0, 0, 0, 1 . . . 0, . . . 0

[0242] OR of the above answers provides:

[0243] checkFlag_(i)=1, 1, 1, 1, . . . 1, . . . 0

[0244] Phase 2

[0245] In phase 2, the set of candidate advertisements narrowed down inphase 1 is subjected to a redefinition process including the score ofindividual candidates for the reasons to be explained below. Definitivetwo-dimensional assignment problems are then solved for the slots.

[0246] One object of redefining candidate advertisements is both to letthe same advertisement information be inserted repeatedly and to changescore for advertisements having different lengths. Illustratively, wherethe objective function is set to be maximized in value, a 30-second slotcan be preferentially assigned two 15-second advertisements instead of asingle 30-second advertisement.

[0247] Another object of the redefinition of a set of candidateadvertisements is to deal with cases where the number of candidatesmaking up the set is smaller than the number of available slots. If,say, three slots are not filled with as many candidate advertisements,then special advertisement information provided by the advertisementselection business operator may illustratively be inserted instead.

[0248] In phase 2, the two-dimensional assignment problem is solvedgiven the following two new conditions:

[0249] (1) Number of times an advertisement is inserted repeatedlywithin the same content

[0250] reach_(i)=No. of times each advertisement can be inserted(repeatable up to 5 times)

[0251] i=0, 1, 2, . . . advertisement index (<No. of candidateadvertisements)

[0252] (2) Expanded candidate advertisement array

[0253] x_(ij∈)0 or 1: 1 for adopting an I-th advertisement (AdTarget) inslot j; 0 for not adopting it

[0254] CMTimePhase2_(i)=length of the advertisement (time period);expandable by up to 5 times

[0255] costPhase2_(i)=score for the advertisement; expandable by up to 5times

[0256] i=0, 1, 2, . . . advertisement index (<No. of candidateadvertisements×5)

[0257] j=0, 1, 2, . . . slot number

[0258] In phase 2, one advertisement (AdTarget) is scored differently soas to be handled as different advertisements over time, i.e., one forfirst-time use, another scored differently for second-time use, . . . ,and another otherwise scored for fifth-time use. More specifically, fora typical redefinition process such as one shown in FIG. 14, the set ofcandidate advertisements selected in phase 1 is expanded by a factor ofa repeatable insertion count to constitute a two-dimensional arrayx_(ij) in conjunction with the slots available for insertion. For anexpanded redefinition process such as one indicated in FIG. 15, the costof advertisements is also expanded by a factor of the repeatableinsertion count.

[0259] In phase 2, a five-fold expanded cost allocation is representedby costPhase2 in the objective function and constraint expression whichare redefined as follows: $\begin{matrix}{\forall{j \in \left. {{SLOT}{\sum\limits_{i \in {CM}}{{costphase2}_{i} \times x_{ij}}}}\rightarrow\max \right.}} \\{{\sum\limits_{i \in {CM}}{\sum\limits_{j \in {Slot}}{{CMTimephase2}_{i} \times x_{ij}}}} = {s\quad l\quad o\quad t\quad T\quad i\quad m\quad e_{j}}} \\{{{{Where}\quad {overlapping}\quad {is}\quad {allowed}\quad {with}\quad {\forall{i \in {CM}}}},}\quad} \\{\forall{j \in {{{SLOT}{\sum\limits_{i}x_{ij}}} \leqq 1}}}\end{matrix}$

[0260] As a result of the processing in phase 2, it might happen thatgiven a total of five candidate advertisements and a total of threeslots, the first of advertisement candidate is inserted into slots 0 and1, the second of advertisement candidate into slots 0 and 2, . . . , andthe fifth of advertisement candidate into slot 1. In such a case, theprocessed result is output in a format such as one shown in FIG. 16.FIG. 17 shows a more comprehensive picture of what has taken place asthe result of such processing.

[0261] F. What to Do if Candidate Advertisements are Fewer than Slot

[0262] If the objective function (1) and the constraint expression (2)above are handled as a two-dimensional assignment problem to be solvedusing 0-1 integer programming and if there are fewer candidateadvertisements than available slots, the processing might be abortedwithout the problem being solved.

[0263] In the example of FIG. 18, the content has two 30-second slotsand two 15-second slots. But there are only two 30-second candidateadvertisements, so that the two 15-second slots are left empty. Thiscauses the processing to abort without satisfying the constraintexpression (2). In the case of FIG. 19, the content has one 90-secondslot, one 15-second slot, and one 30-second slot. There are two30-second candidate advertisements and one 15-second candidateadvertisement, so that not all slots are filled. This also causes theprocessing to abort with the constraint expression (2) left unsatisfied.

[0264] The trouble above is averted by inserting the candidateadvertisements into as much space of the slots as possible and simplyleaving the vacant slots as they are. This meets one of thepreconditions of this business model that advertising fees are gained byinserting advertisement information into slots.

[0265] Alternatively, before the constraint expression is solved, acheck may be made to see if there exist enough candidate advertisementsto fill the slots. If the candidate advertisements are judged to befewer than the available slots, then the assignment problem may besolved with regard to each slot.

[0266] If one of the following two conditions is met, it can be judgedthat the number of candidate advertisements falls short of the number ofslots:

[0267] (1) The number of all candidate advertisements is smaller thanthe number of all slots; or

[0268] (2) The sum of the times of all candidate advertisements is lessthan the sum of all slot times.

[0269] For the condition (2) above, the repeatable insertion count ofeach candidate advertisement is also considered. This is done byrendering the condition (2) into the following expression:$\begin{matrix}{{\sum\limits_{i}\left( {{CMTime}_{i} \times {NumOfDuplicate}_{i}} \right)} = {\sum\limits_{j}{s\quad l\quad o\quad t\quad T\quad i\quad m\quad e_{j}}}} & (5)\end{matrix}$

[0270] where,

[0271] slotTime_(j): length (time period) of each slot in which toinsert advertisement in content

[0272] CMTime_(i): length (time period) of each advertisement;expandable by up to 5 times

[0273] NumOfDuplicate_(i): repeatable insertion count of theadvertisement in question

[0274] i=0, 1, 2 . . . advertisement index

[0275] j=0, 1, 2 . . . number of slot in content

[0276] If the number of candidate advertisements is judged to fall shortof the number of available slots, the candidate advertisement assignmentproblem is solved using integer programming with regard to each slot. Inthis case, the following integer programming problem is solved using theexpressions shown with respect to a given slot “j,” eventually coveringall slots:

[0277] Objective Function $\begin{matrix}{{\sum\limits_{i}\left( {{COSt}_{i} \times y_{i}} \right)}->\max} & (6)\end{matrix}$

[0278] Constraint Expression $\begin{matrix}{{\sum\limits_{i}\left( {{CMTime}_{i} \times y_{i}} \right)} = {slotTime}_{j}} & (7)\end{matrix}$

[0279] where,

[0280] slotTimme_(j): length (time period) of each slot in which toinsert advertisement in content

[0281] y_(i∈)0 or 1: 1 for adopting a given advertisement; 0 for notadopting it

[0282] CMTime_(i): length (time period) of each advertisement;expandable by up to 5 times

[0283] cost_(i): score of the advertisement; the greater the score, thehigher the priority

[0284] i=0, 1, 2, . . . advertisement index

[0285] j=0, 1, 2, . . . number of slot in content

[0286] Since the expression (7) above is an inequality, there is no needfor the inserted advertisement information to coincide completely withthe slot size upon assignment.

[0287] The advertisement information selected for one slot is excluded(fixed to yi=0) from all other slots. If the advertisement of interestis judged set for repeatable insertion, that advertisement is allowed tobe selected for the next slot provided the repeatable insertion count isnot exceeded.

[0288]FIG. 20 shows how the candidate advertisement assignment problemis typically solved with regard to each slot. Once selected, theadvertisement information is removed from the candidate advertisements.

[0289] When the candidate advertisement assignment problem is solved foreach slot using integer programming as described above, some slots maybe left vacant or only partially filled. In such cases, the unfulfilledslots may be left empty, with the content forward-justified fordistribution. Alternatively, emergency information (e.g., wild-cardadvertisements) may be inserted to fill the slots.

[0290]FIG. 21 is a flowchart of steps for solving the candidateadvertisement assignment problem where the number of candidateadvertisements falls short of the number of slots.

[0291] In step S31, a check is made to see if there is at least onecandidate advertisement. If no candidate advertisement is judged toexist, step S40 is reached. In step S40, all slots or spare spaces arefilled with wild-card advertisements, and this processing routine isterminated.

[0292] If, in step S31, at least one candidate advertisement is judgedto exist, step S32 is reached. In step S32, a check is made to see if asufficient number of candidate advertisements are provided to fill theslots. More specifically, it is determined whether the number ofcandidate advertisements is at least equal to the number of slots, orwhether the sum of the time periods of the candidate advertisements isat least equal to the total slot time. The check is made by solving theexpression (5) above.

[0293] If in step S32 a sufficient number of candidate advertisementsare judged to exist for the available slots, step S33 is reached. Instep S33, a regular algorithm process is carried out.

[0294] If in step S32 the number of candidate advertisements is judgedto fall short of the number of slots, step S34 is reached. In step S34,the candidate advertisement assignment problem is solved regarding eachslot using integer programming. Specifically, the objective function (6)and expression (7) (control expression) are used to solve the integerproblem for each slot.

[0295] In step S35, a check is made to see if there is any morecandidate advertisement left. If any candidate advertisement is judgedto exist, step S36 is reached. In step S36, a check is made to see ifthe assignment problem is solved with regard to all slots. If any slotis judged to be left untreated, step S34 is reached again and theassignment problem is solved regarding that slot.

[0296] If all slots are judged to have been dealt with, step S37 isreached. In step S37, a check is made to see if all slots are filledwith advertisement information. If all slots are judged to have beenfilled, then this processing routine is terminated. If any slot isjudged to be left unfilled, the vacant slot is either left empty orfilled with wild-card advertisement information in step S39, and theprocessing routine is brought to an end.

[0297] If in step S35 no more candidate advertisement is judged toexist, then the unfilled slots are either left empty or filled withwild-card advertisement information in step S38. The processing routineis then terminated.

[0298] Where the advertisement information assignment problem is solvedwith respect to each slot in the manner outlined in FIG. 21, theadvantage is that effective candidates are preferentially inserted intoslots located earlier in the content, with latter slots left vacant ifdevoid of advertisements. If there is no need to consider prioritiesbetween different slots in the content, then the expression (2) as shownbelow before the two-dimensional assignment problem is solved. In thiscase, the inserted advertisement information may be distributedthroughout the slots in the content. $\begin{matrix}{{\forall{j \in {{Slot}\quad {\sum\limits_{i \in {CM}}\left( {{CMTime}_{i} \times x_{ij}} \right)}}}} = {slotTime}_{j}} & (8)\end{matrix}$

[0299] where,

[0300] slotTime_(j): length (time period) of each slot in which toinsert advertisement in content

[0301] x_(ij): 1 for adopting the i-th advertisement in j-th slot; 0 fornot adopting it

[0302] CMTime_(i): length (time period) of each advertisement;expandable by up to 5 times

[0303] cost_(i): score of the advertisement; the greater the score, thehigher the priority

[0304] i=0, 1, 2 . . . advertisement index

[0305] j=0, 1, 2 . . . number of slot in content

[0306] The above method may be modified to provide other controls suchas the preferred insertion of particular advertisement information intothe earlier slots in the content. This can be achieved by simplyintroducing a slot-specific priority variable into the objectivefunction (1) shown above.

[0307] The newly introduced variable is:

[0308] slotCostj: variable representative of the priority of each slot

[0309] Thus the objective function turns out to be: $\begin{matrix}{{\sum\limits_{i \in {CM}}{\sum\limits_{j \in {Slot}}\left( {{cost}_{i} \times x_{ij} \times {slotCost}_{j}} \right)}}->{maximum}} & (9)\end{matrix}$

[0310] G. What to Do to Reduce the Number of Variables for IntegerProgramming

[0311] When the advertisement information assignment problem is solvedfor each slot using the expressions (1) and (2) above, the number ofnecessary variables x_(ij) is determined by the number of candidateadvertisements multiplied by the number of slots. The larger the numberof candidate advertisements, the longer the time it may take to carryout the calculations involved. In particular, the presence of candidateadvertisements subject to repeatable insertion requires expandedredefinition of variables as shown in FIGS. 12 through 14 (i.e.,addition of variables for dealing with “clones” of the advertisementinformation in question), which further increases the number ofvariables to be computed.

[0312] The ever-increasing number of variables is controlledillustratively by resorting to a two-phase processing scheme, to bedescribed below. This scheme was explained in part using the pseudo codeformat in the latter half of the earlier description, “E. Assignment ofcandidate advertisements by the MP unit.” The scheme will now bediscussed further with a more detailed algorithm in conjunction withwhat may be called a definitive system embodiment of this invention.

[0313] Phase 1

[0314] The advertisement information assignment problem is solved foreach slot, and the selected advertisement information is added to a setof candidate advertisements (see FIG. 22). In this phase, a sufficientnumber of candidate advertisements making up the candidate set areselected with no overlap allowed between the selected advertisements.

[0315] Phase 2

[0316] For the set of candidates selected in phase 1 above, thevariables involved are subjected to expanded redefinition as shown inFIGS. 14 and 15 to allow for repeatable insertion (the value “n” in thefigures stands for the number of candidate advertisements narrowed downin phase 1). Then the two-dimensional assignment problem expressed bythe expressions (1) and (2) above is solved. The advertisementinformation allowed for repeatable insertion is redefined by theexpanded redefinition process as another advertisement informationhaving a different cost value for second-time and subsequent uses. Theredefined advertisements are solved all at once as a two-dimensionalassignment problem for all slots. The same advertisement information isnot assigned again to the same slot. A repeatable insertion count may beset for each advertisement. The variables of only those advertisementsallowed for repeatable insertion are enabled, and the variables of theother advertisements are excluded from the calculations. This helps toreduce the number of variables to be computed and thereby minimizeprolongation of the calculation time. Suppose, in the example of FIG.14, that the first of advertisement candidate is allowed to be insertedup to three times. In that case, the variables x_(lj), x_(l+nj), andx_(l+2nj) are included in the calculation while the variables x_(l+3nj)and x_(l+4nj) are fixed to zero and excluded from the calculation.

[0317] As described, only the advertisements selected in phase 1 aretaken as the candidates so that the number of variables to be computedin the two-dimensional assignment problem in phase 2 is reduced. Solvingthe problem in phase 1 narrows the candidates down to the advertisementinformation which turns out to be effective and which has already beenassigned to the length of each slot. This arrangement allows for aminimum of deterioration in the accuracy of optimum assignment asopposed to cases where the assignment problem is solved for allcandidate advertisements using the expressions (1) and (2) above.

[0318] The integer programming problem is solved in phase 1 using thefollowing expressions:

[0319] Objective Function $\begin{matrix}{{\sum\limits_{i}\left( {{cost}_{i} \times y_{i}} \right)}->\max} & (10)\end{matrix}$

[0320] Constraint Expression $\begin{matrix}{{\sum\limits_{i}{{CMTime}_{i} \times y_{i}}} = {slotTime}_{j}} & (11)\end{matrix}$

[0321] where,

[0322] slotTimej: length (time period) of each slot in which to insertadvertisement in content

[0323] y_(i)∈0 or 1: 1 for adopting an advertisement (AdTarget); 0 fornot adopting it

[0324] CMTime_(i): length (time period) of each advertisement;expandable by up to 5 times

[0325] cost_(i): score of the advertisement; the greater the score, thehigher the priority

[0326] i=0, 1, 2 . . . advertisement index

[0327] j=0, 1, 2 . . . number of slot in content

[0328] Once selected for any one slot, the advertisement information isremoved (fixed to y_(i)=0) from the candidate so as not to be selectedfor any other slot. This also applies to the advertisement informationallowed for repeatable insertion. The readjustment of the cost valuedefined in the expression (3) above is carried out.

[0329]FIG. 24 is a flowchart of steps for solving the problem ofassigning advertisement information to slots using the above-describedtwo-phase scheme in order to reduce the number of variables to becalculated in integer programming.

[0330] In steps S51 and S52 constituting phase 1, the advertisementinformation assignment problem is solved for each slot using integerprogramming as defined by the expressions (10) and (11) above. And instep S53, the solutions obtained in phase 1 are placed in temporarystorage.

[0331] In step S54 introducing phase 2, a check is made to see whetherthere is any candidate advertisement subject to repeatable insertion.

[0332] If in step S54 any candidate advertisement allowed for repeatableinsertion is judged to exist, step S55 is reached. In step S55, as manyclones of each candidate advertisement selected in phase 1 are generatedas the repeatable insertion count of that candidate. In step S56, thetwo-dimensional assignment problem is solved regarding all slots. If theproblem is solved, the solution is returned and the processing routineis brought to an end.

[0333] If in step S54 no candidate advertisement subject to repeatableinsertion is judged to exist, or if the two-dimensional problem is notjudged to be solved in step S57, then step S58 is reached. In step S58,the solutions from phase 1 are adopted as they are.

[0334] In step S59, a check is made to see if all slots have beenfilled. If all slots are judged to have been filled, the solutions arereturned and the processing routine is terminated. If not all slots arefilled, then step S60 is reached in which the empty slots are left asthey are or filled with wild-card advertisements. The solutions are thenreturned and the processing routine is brought to an end.

ADDENDUM

[0335] Although the description above contains many specificities, theseshould not be construed as limiting the scope of the invention but asmerely providing illustrations of some of the presently preferredembodiments of this invention. It is evident that many alternatives,modifications and variations will become apparent to those skilled inthe art in light of the description.

[0336] For example, although the description above has focused primarilyon the service of distributing image contents to personal computers overthe Internet, this is not limitative of the invention. Alternatively,the advertisement selecting method of this invention may also be appliedto content-providing services involving mobile terminals such as mobiletelephones and PDAs (personal digital assistants), as well as tobi-directional information services associated with digital TV.

[0337] As another alternative, the inventive advertisement selectingmethod may be applied to content-providing services involving suitabledistribution means allowing packaged contents such as DVDs (digitalversatile discs) to be supplemented with commercial images being offeredover the Internet. In such cases, the packaged contents like the DVDsare expected to be distributed free of charge or at a low cost.

[0338] Thus the scope of the invention should be determined by theappended claims and their legal equivalents, rather than by the examplesgiven.

INDUSTRIAL APPLICABILITY

[0339] The invention provides an advertisement inserting apparatus, anadvertisement inserting method, and a storage medium for properlyinserting advertisement information into contents such as movingpictures that are distributed over a wide-area network such as theInternet.

[0340] The invention also provides an advertisement inserting apparatus,an advertisement inserting method, and a storage medium for inserting,in a manner selectively personalized for each subscriber, advertisementinformation into contents such as moving pictures that are offered tothe subscribers under a pull-type distribution scheme over the Internetor similar networks.

[0341] The invention further provides an advertisement insertingapparatus, an advertisement inserting method, and a storage medium forselectively inserting advertisement information into contents such asmoving pictures in a manner corresponding to individual advertisementinsertion frames called slots having a predetermined insertion time(i.e., length) each within the contents.

[0342] Illustratively, as recent advances in the streaming technologyaccelerate widespread use of the advertisement distribution servicescustomized to individual subscribers, advertisements are expected todiversify to such an extent that their volumes and types will growexplosively. Although it is impossible to get the subscribers to watchall candidate advertisements inserted into distributed contents, theinvention provides a system that calculates dynamically on how to assignadvertisements to slots under existing display constraints (i.e., timeconstraints that apply conventionally when commercials are inserted intoTV broadcasts, or display area constraints applicable when commercialsare shown divided on a single screen).

1. An advertisement inserting apparatus for selecting advertisementinformation from a plurality of candidate advertisements having a costvalue each for insertion into a slot in a content, said advertisementinserting apparatus comprising: selection condition establishing meansfor establishing an objective function and a constraint expression asselection conditions, said objective function being used to maximize atotal of cost values held by the advertisements to be inserted into saidslot, said constraint expression for equalizing totaled lengths of saidadvertisements to be inserted with a length of said slot; andadvertisement information selecting means for selecting saidadvertisement information to be inserted into said slot from saidplurality of candidate advertisements by solving the establishedselection conditions using linear programming.
 2. An advertisementinserting apparatus according to claim 1, wherein said cost value ofsaid advertisement information is a value representative of a degree ofsatisfaction for an entire system having an information-providing spacemade up of a content provider providing said content, of a commercialsponsor offering advertisement information to be attached to saidcontent, and of a subscriber viewing said content.
 3. An advertisementinserting apparatus according to claim 1, wherein, in aninformation-providing space made up of a content provider providing saidcontent, of a commercial sponsor offering advertisement information tobe attached to said content, and of a subscriber viewing said content,attribute information held by said content, by said advertisementinformation, and by said subscriber is compared with requirements ofeach of said content provider, said commercial sponsor, and saidsubscriber regarding the selection of advertisements so as to obtain adegree of satisfaction for each of said content provider, saidcommercial sponsor, and said subscriber, the obtained degrees ofsatisfaction being used as a basis for calculating said cost value ofsaid advertisement information.
 4. An advertisement inserting apparatusaccording to claim 1, further comprising cost value scoring means forscoring said cost value depending on the length of said advertisementinformation.
 5. An advertisement inserting apparatus according to claim1, wherein said content includes a plurality of slots allowing the sameadvertisement information to appear a plurality of times in a singlecontent, said advertisement inserting apparatus further comprisingexpanded redefining means for redefining in expanded fashion the sameadvertisement information as a different candidate advertisement as manytimes as a repeatable insertion count of the advertisement in question.6. An advertisement inserting apparatus according to claim 5, whereinsaid expanded redefining means supplements said selection conditionsselected by said selection condition establishing means with arestricting condition for inhibiting the same advertisement informationallowed to appear repeatedly from appearing more than once in the sameslot.
 7. An advertisement inserting apparatus according to claim 5,wherein said expanded redefining means reduces a score of the cost valueof any redefined candidate advertisement so that the same advertisementinformation will not be selected preferentially for repeated insertion.8. An advertisement inserting apparatus according to claim 1, furthercomprising candidate advertisement count judging means for judgingwhether the number of candidate advertisements is at least the same asthe number of slots; wherein, if the candidate advertisement count isjudged by said candidate advertisement count judging means to fall shortof the slot count, then said advertisement information selecting meansselects said advertisement information using integer programmingregarding each slot.
 9. An advertisement inserting apparatus accordingto claim 5, further comprising candidate advertisement count judgingmeans for judging whether the number of candidate advertisements is atleast the same as the number of slots; wherein, if the candidateadvertisement count is judged by said candidate advertisement countjudging means to fall short of the slot count, then said advertisementinformation selecting means generates a set of candidate advertisementsusing integer programming for each slot so that the advertisementinformation to be inserted into each slot may be selected from said setof candidate advertisements with said repeatable insertion count of eachadvertisement in said set taken into consideration.
 10. An advertisementinserting method for selecting advertisement information from aplurality of candidate advertisements having a cost value each forinsertion into a slot in a content, said advertisement inserting methodcomprising the steps of: establishing an objective function and aconstraint expression as selection conditions, said objective functionbeing used to maximize a total of cost values held by the advertisementsto be inserted into said slot, said constraint expression for equalizingtotaled lengths of said advertisements to be inserted with a length ofsaid slot; and selecting said advertisement information to be insertedinto said slot from said plurality of candidate advertisements bysolving the established selection conditions using linear programming.11. An advertisement inserting method according to claim 10, whereinsaid cost value of said advertisement information is a valuerepresentative of a degree of satisfaction for an entire system havingan information-providing space made up of a content provider providingsaid content, of a commercial sponsor offering advertisement informationto be attached to said content, and of a subscriber viewing saidcontent.
 12. An advertisement inserting method according to claim 10,wherein, in an information-providing space made up of a content providerproviding said content, of a commercial sponsor offering advertisementinformation to be attached to said content, and of a subscriber viewingsaid content, attribute information held by said content, by saidadvertisement information, and by said subscriber is compared withrequirements of each of said content provider, said commercial sponsor,and said subscriber regarding the selection of advertisements so as toobtain a degree of satisfaction for each of said content provider, saidcommercial sponsor, and said subscriber, the obtained degrees ofsatisfaction being used as a basis for calculating said cost value ofsaid advertisement information.
 13. An advertisement inserting methodaccording to claim 10, further comprising the step of scoring said costvalue depending on the length of said advertisement information.
 14. Anadvertisement inserting method according to claim 10, wherein saidcontent includes a plurality of slots allowing the same advertisementinformation to appear a plurality of times in a single content, saidadvertisement inserting method further comprising the step of redefiningin expanded fashion the same advertisement information as a differentcandidate advertisement as many times as a repeatable insertion count ofthe advertisement in question.
 15. An advertisement inserting methodaccording to claim 14, wherein said expanded redefining step supplementssaid selection conditions selected in said selection conditionestablishing step with a restricting condition for inhibiting the sameadvertisement information allowed to appear repeatedly from appearingmore than once in the same slot.
 16. An advertisement inserting methodaccording to claim 14, wherein said expanded redefining step reduces ascore of the cost value of any redefined candidate advertisement so thatthe same advertisement information will not be selected preferentiallyfor repeated insertion.
 17. An advertisement inserting method accordingto claim 10, further comprising the step of judging whether the numberof candidate advertisements is at least the same as the number of slots;wherein, if the candidate advertisement count is judged in said judgingstep to fall short of the slot count, then said advertisementinformation selecting step selects said advertisement information usinginteger programming regarding each slot.
 18. An advertisement insertingmethod according to claim 14, further comprising the step of judgingwhether the number of candidate advertisements is at least the same asthe number of slots; wherein, if the candidate advertisement count isjudged in said judging step to fall short of the slot count, then saidadvertisement information selecting step generates a set of candidateadvertisements using integer programming for each slot so that theadvertisement information to be inserted into each slot may be selectedfrom said set of candidate advertisements with said repeatable insertioncount of each advertisement in said set taken into consideration.
 19. Astorage medium which stores physically, in a computer-readable format,computer software for causing a computer system to select advertisementinformation from a plurality of candidate advertisements having a costvalue each for insertion into a slot in a content, said computersoftware comprising the steps of: establishing an objective function anda constraint expression as selection conditions, said objective functionbeing used to maximize a total of cost values held by the advertisementsto be inserted into said slot, said constraint expression for equalizingtotaled lengths of said advertisements to be inserted with a length ofsaid slot; and selecting said advertisement information to be insertedinto said slot from said plurality of candidate advertisements bysolving the established selection conditions using linear programming.